chdkfandomcom-20200222-history
CHDK in Brief
=CHDK In Brief= CHDK is a firmware enhancement that operates on a number of Canon Cameras. CHDK gets loaded into your camera's memory upon bootup (either manually or automatically). It provides additional functionality beyond that currently provided by the native camera firmware. CHDK is not a permanent firmware upgrade: you decide how it is loaded (manually or automatically) and you can always easily remove it. Please see the FAQ, CHDK for Dummies, Firmware Usage page and the One Page Ultra-Quick Users Guide, as well as other pages on this wiki, for more specifics on supported cameras, details of features, scripting, downloading, etc. = Quick answers to 7 key questions about CHDK: = 1. What is CHDK? :CHDK is not just one thing! The term CHDK refers to free software – currently available for many (but not all) Canon PowerShot compact digital cameras – that you can load onto your camera's memory card to give your camera greatly enhanced capabilities. 2. Am I likely to be interested in CHDK? :The enhanced capabilities that CHDK provides are most likely to be of interest to experienced photographers - if you believe that your Canon PowerShot camera already has more features than you will ever need, you probably won't be interested in CHDK. 3. Is CHDK safe to use? :Probably. See the following FAQ entries for more information :* FAQ#Q. Does using the CHDK program void your warranty? :* FAQ#Q. Can CHDK damage your camera ? 4. How does CHDK work? :CHDK makes use of the microprocessor that controls the camera (every digital camera contains a microprocessor) to act as a programmable computer that provides the extra capabilities. 5. What extra capabilities does CHDK provide? :The current set of extra capabilities fall into six categories: ::a. Enhanced ways of recording images - you can capture still pictures in RAW format (as well as JPEG), and for video images you can have increased recording time and length (1 hour or 2 GB), and a greatly increased range of compression options. ::b. Additional data displays on the LCD screen - histogram, battery life indicator, depth of field, and many more. ::c. Additional photographic settings that are not available on the camera by itself - longer exposure times (up to 65 seconds), faster shutter speeds (1/25,000 sec, and faster in some cases), automatic bracketing of exposure, etc. ::d. The ability for the camera to run programs ('scripts', written in a micro-version of the BASIC language) stored on the memory card - these programs allow you to set the camera to perform a sequence of operations under the control of the program. For example, a camera can be programmed to take multiple pictures for focus bracketing, or take a picture when it detects that something in the field of view moves or changes brightness. ::e. The ability to take a picture, or start a program on the memory card, by sending a signal into the USB port - you can use the USB cable to take a picture remotely. ::f. The ability to do a number of other more useful (and fun) things, such as act as a mini file browser for the memory card, let you play games on the LCD screen, etc. 6. What else should I know? :Developers around the world are continuing to add new features to CHDK. Because the idea of using the camera's microprocessor is so flexible, various developers have made different versions of CHDK, and new features continue to be developed - for example, one version of CHDK has features assist in taking stereo photographs, and even allows two cameras to be synchronized to take pictures at the same time (with an accuracy of better than 0.1 milliseconds, providing they are the same camera model). 7. How do I get started with CHDK? :See below, and read the FAQ, CHDK for Dummies and the Firmware Usage page !!! ::(http://chdk.wikia.com/wiki/FAQ , http://chdk.wikia.com/wiki/CHDK_for_Dummies and http://chdk.wikia.com/wiki/CHDK_firmware_usage) A sampling of those additional features/functionality. Main features: * Save images in RAW format * Ability to run "Scripts" to automate the camera * Live histogram (RGB, blended, luminance and for each RGB channel) * Zebra mode (blinking highlights and shadows to show over/under exposed areas) * An "always on" full range Battery indicator * Ability to turn off automatic dark-frame subtraction * a higher compression movie mode, and double the maximum video file size * exposure times as long as 65 seconds * exposure times as little as 1/10,000 of a second * ability to use the USB port for a remote trigger input Additional features: * a depth-of-field (DOF)-calculator * File browser * Text reader * Calendar * Some fun tools and games Why would I want to use CHDK? * To get Raw file capability on cameras that don't have that ability * To get the ability to use scripts * to be able to know the battery status at all times (not just when it's about to run out of power) * you want or need any of the other enhancement features that CHDK provides What are scripts? [[UBASIC | Scripts]] are BASIC language programs that give you the ability to control the operation of the camera under program control. They have been used to add or extend the native capability of the camera: more flexible intervalometers, extended-range exposure compensation, extended bracketing ability, lightning photography, etc. See the script pages for more details. Beyond "Standard" CHDK Several developers have extended the basic features of CHDK to add additional major functions. You'll find these extended features in "special builds". There are several "Motion Detection" versions available that allow scripts to detect when motion (or any change in light intensity) occurs in one or more predefined regions of the images (the script can then take a photograph, a video, start a timer, etc) and there are some *very* cool applications based on this implementation. There is a "Stereo Data Maker" (SDM) version, specifically geared to stereo image applications (which also incorporates the Motion Detection routines). Additional video compression options (more or less), and the ability to go beyond the 1 Gbyte limit. Use your USB port as a remote control / "cable release". See the [[CHDK#Special_Builds|'CHDK Special Builds']] section at the bottom of the front page for more information, and then follow the links to the developers' pages for the details. =CHDK: How do I get started?= Step 1. See if there is a CHDK for your camera and firmware You need to know your camera model and its firmware version. (Note: non-US models sometimes have different model designations, and sometimes references to the camera models here don't cross reference to those. You may have to seek out this information.) A good place to start is on the FAQ and the DOWNLOADS page. If Downloads doesn't give you the desired information, visit For Developers for a list of all models (including US and European names). A colour code tells you how far the basic support for CHDK is. Step 2. If CHDK is available for your camera & FW (yeah!), download it You can find the links at the DOWNLOADS page as well. Step 3. Transfer the CHDK program files onto your memory card See the FAQ for how to do this. (Key point: there are two files, each about 110 kBytes, that must be placed on the memory card in its root directory) Step 4. Get CHDK to 'boot' (or load) into the camera after you turn it on Your camera is a computer, and just because you load a program onto its hard disk doesn't mean that program will run every time you turn on your computer. You really must read the FAQ to learn how to get CHDK running. In brief, you have two options: either manual (you take steps to load it each time you turn on your camera) or automatic loading (it loads each time the camera turns on, without any additional steps by you). Step 5. Use it! Get started with the One Page Ultra-Quick Users Guide, then read the Firmware Usage page for the more details. Explore the rest of this wiki for more information. =CHDK: What if there isn't a CHDK for my camera?= There is active development work on a number of cameras and/or firmware versions that currently are not supported. Check out the For Developers page for the listing of ongoing projects. (and consider helping out.) In brief, these are the key steps in the porting process: # get the camera to somehow respond to something on the card. # using the process that got you step 1, and some mediumly complex electronics, (and a bit of luck and late night futzing) read out a copy of the existing firmware (e.g., dump the firmware). # analyze the firmware, find out where key routines are. # modify the source code to add the locations of these key routines # compile the software, debug it, and you've got it! # Flip out like a ninja! (this step is optional, but truly deserved! :) The table at the begining of the For Developers page shows known status of different cameras. ---- = The next step: CHDK for Dummies = Category:CHDK